package J23;

import java.util.Iterator;
import java.util.Scanner;

public class J23_MemberMain {

	private static Scanner sc = new Scanner(System.in);
	//private static J23_MemberDAO srv = new J23_MemberDAO();
	private static J23_MemberService srv = new J23_MemberDAO();
	// MemberDAO는 MemberService를 구현한
	// 클래스이므로 객체생성시 객체유형을
	// 인터페이스로 정의할 수 있음(주-종관계)
	
	private static final String TITLE 	= "-=회원 관리 프로그램=-";
	private static final String MENU 	
		= "1) 회원추가 2) 회원전체조회 3) 회원상세조회 4) 회원수정 5) 회원탈퇴 0) 종료";
	private static final String ADDMSG 
	 	= " 아이디,주민번호,비밀번호,우편번호,주소,전화번호,휴대폰,결제방법 순으로 입력하세요";
	private static final String ADDOK 	= " 성공적으로 회원가입이 완료되었어요!";
	private static final String UPDMSG1	= " 수정할 회원 아이디를 입력하세요";
	private static final String UPDMSG2	= " 비밀번호,우편번호,주소,전화번호,휴대폰,결제방법 순으로 입력하세요 ";
	private static final String DELMSG 	= " 삭제할 회원 아이디를 입력하세요 ";
	private static final String UPDOK 	= " 성공적으로 회원정보가 수정되었어요! ";
	private static final String DELOK 	= " 성공적으로 회원정보가 삭제되었어요! ";
	private static final String EXITOK 	= " 프로그램을 종료합니다 ";
	private static final String ERRMSG 	= " 잘못된 코드를 입력하셨쎄요 ";
	private static final String READMSG	= " 상세조회하실 회원 아이디를 입력하세요";

		
	
	public static void main(String[] args) {
		// 회원 관리 프로그램
		System.out.println(TITLE);
		while(true){
			System.out.println(MENU);
			switch (sc.next()) {
			case "1":	addMember(); break;		// 회원가입
			case "2":	readMember(); break;	// 전체조회
			case "3":	readOneMember(); break;	// 상세조회
			case "4":	modifyMember(); break;	// 회원수정
			case "5":	deleteMember(); break;	// 회원삭제
			case "0":	exitmember(); break;	// 종료
			default : System.out.println(ERRMSG);
			}// switch
		}// while
		
		
	}// main



	private static void exitmember() {
		sc.close();
		System.out.println(EXITOK);
		System.exit(0);
	}



	private static void deleteMember() {
		readMember(); 	// 삭제전 전체자료 출력
		System.out.println(DELMSG);
		String userid = sc.next();
		if (srv.deleteMember(userid) > 0)
			System.out.println(DELOK);
		
	}



	private static void modifyMember() {
		readMember();	// 수정전 전체자료 출력
		System.out.println(UPDMSG1);
		String userid = sc.next();
		System.out.println(UPDMSG2);
		J23_Member m = new J23_Member(
				userid, null, sc.next(), 
				sc.next(), sc.next(), sc.next(), 
				sc.next(), sc.next() );
		if (srv.updateMember(m) > 0)
			System.out.println(UPDOK);

	}



	private static void readOneMember() {
		readMember();
		System.out.println(READMSG);
		String userid = sc.next();
		System.out.println( srv.readOneMember(userid) );
	}



	private static void readMember() {
		Iterator<J23_Member> iter = srv.readMember().iterator();
		while(iter.hasNext()){
			System.out.println( iter.next() );
		}
		
	}



	private static void addMember() {
		System.out.println(ADDMSG);
		J23_Member m = new J23_Member(
				sc.next(), sc.next(), sc.next(), sc.next(), 
				sc.next(), sc.next(), sc.next(), sc.next());
		if(srv.insertMember(m) > 0)
			System.out.println(ADDOK);
		
	}

}// class
